For many enterprise applications, finite resources must be allocated among a number of requests for such resources. In an enterprise call center, for example, incoming calls must often be routed to an appropriate call center agent at one or more local or remote call centers. Incoming calls are generally distributed among a number of agents within the call center who are each trained to handle certain types of incoming calls. A call center will normally be capable of handling many different types of received calls. For example, a call center may receive calls relating to each of a multitude of different products and/or services offered by the corresponding enterprise. The services and functions handled by a call center may include taking product orders, providing customer service, providing pricing and/or availability information, or a number of other functions. The types of calls that are supported by a call center are commonly referred to as the “skills” of the call center.
Typically, the number of agents available to service incoming requests is insufficient to meet the demand. Thus, each skill typically has an associated queue for storing received calls until an appropriate agent is available to process the call. Generally, resource allocation systems attempt to balance the work load among the qualified resources that are available. Thus, in the context of a call center, a resource allocation system typically attempts to allocate an available agent based on the service level targets associated with the queues that the agent is qualified to service.
An enterprise will typically define business rules that specify how requests should be treated while waiting in a queue, often referred to as a “wait treatment.” For example, the caller may be offered a menu of options that allow the caller to “self service” his or her request. In addition, one or more announcements may be presented to the caller that may contain, for example, account information, transaction history, or promotional messages. Typically, a uniform wait treatment is applied to all requests in a given queue. In a further variation, a customized wait treatment can be provided based on characteristics of the call, such as the nature of the inquiry or a customer assessment, such as whether the customer is a “gold” customer.
In order to provide callers with an improved experience while on hold, a number of call centers transfer the call to an interactive voice response (IVR) unit while the call is on hold for the predicted wait time. Such IVR systems can offer callers a number of different wait treatments. The automatic call distribution (ACD) system, however, loses control of the call for the predicted wait time while the call resides with the IVR system. Thus, the ACD system cannot control the routing of the call during this interval, for example, if an agent becomes available earlier than the predicted wait time.
A need therefore exists for methods and apparatus for providing variable wait treatments based on characteristics of the queue. A further need exists for methods and apparatus for providing wait treatments to a caller using an IVR system or announcement server, without losing control of the call.